Cheap Tupling Transformation

نویسندگان

  • Zhenjiang Hu
  • Hideya Iwasaki
  • Masato Takeichi
چکیده

Tupling is a well-known transformation tactic to obtain new recursive functions without redundant recursive calls and/or multiple traversals of common data, which is achieved by grouping some recursive functions into a tuple. Although being studied for a long time based on fold/unfold transformation, it su ers from the high cost of keeping track of function calls and has to use clever control to avoid in nite unfolding, which prevent it from being used in a practical compiler of functional languages. In this paper, we propose a cheap tupling based on the theory of constructive algorithmics. We give several simple but e ective calculational rules, which not only can be successfully applied to improve a lot of interesting recursive functions but also can be implemented e ciently.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Redundant Call Elimination via Tupling

Redundant call elimination has been an important program optimisation process as it can produce super-linear speedup in optimised programs. In this paper, we investigate use of the tupling transformation in achieving this optimisation over a first-order functional language. Standard tupling technique, as described in [6], works excellently in a restricted variant of the language; namely, functi...

متن کامل

Synchronisation Analysis to Stop Tulping

Tupling transformation strategy can be used to merge loops together by combining recursive calls and also to eliminate redundant calls for a class of programs. In the latter case, this transformation can produce super-linear speedup. Existing works in deriving a safe and automatic tupling only apply to a very limited class of programs. In this paper, we present a novel parameter analysis, calle...

متن کامل

A Modular Derivation Strategy via Fusion and Tupling

We show how programming pearls can be systematically derived via fusion, followed by tupling transformations. By focusing on the elimination of intermediate data structures (fusion) followed by the elimination of redundant calls (tupling), we can systematically realise both space and time e cient algorithms from naive speci cations. We illustrate our approach using a well-known maximum segment ...

متن کامل

Effective Optimization of Multiple Traversals in Lazy Languages

Tupling transformation strategy can be applied to eliminate redundant calls in a program and also to eliminate multiple traversals of data structures. While the former application can produce super-linear speedup in the transformed program, the eeectiveness of the latter has yet to be appreciated. In this paper, we investigate the pragmatic issues behind elimination of multiple data traversal i...

متن کامل

Program Transformation : Theoretical Foundations and Basic Techniques

(v) interaction of program transformation with related methodologies for assisting software development, (vi) languages and systems for specifying and applying program transformations; and (vii) case studies, that is, derivation of non-trivial algorithms from specifications and automated generation of software systems. Among all papers we have received, twelve papers were selected for publicati...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1996